package login;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

/**
 * Created with IntelliJ IEDA.
 * Description:
 * User:86186
 * Date:2022-12-21
 * Time:15:59
 */
@WebServlet("/login")
//使用这个类来处理登录请求
public class LoginServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //1. 从请求中获取到页面提交的用户名和密码
        String username = req.getParameter("username");
        String password = req.getParameter("password");

        //2. 验证用户名密码是否正确
        //正常这个操作要查数据库，此处为了简单，直接写硬编码了，（把正确的用户名和密码写死了）
        if ("zhangsan".equals(username) && "123".equals(password)){
            //登录成功
            //a)创建一个对话.
            //1)创建sessionId和一个HttpSession对象
            //2)把这两个内容以键值对的形式插入到内存的 哈希表 中
            //3)把sessionId通过 Set-Cookie 写道响应中
            HttpSession session = req.getSession(true);
            //随意的设置 “键值对” 了，（HttpSession 对象也相当于是一个 哈希表）
            session.setAttribute("username","zhangsan");
            //b）让响应重定向到主页
            resp.sendRedirect("index");
        }else {
            //登录失败
            resp.setStatus(403);
            resp.setContentType("text/html; charset=utf8");
            resp.getWriter().write("登录失败，用户名或者密码错误！！");

        }
    }
}
